package com.member.shop.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.member.common.annotation.Excel;
import com.member.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 提现申请对象 sys_biz_withdraw_apply
 *
 * @author lixinchen
 * @date 2024-01-11
 */
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_biz_withdraw_apply")
public class SysBizWithdrawApply extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 唯一id
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 提现编号
     */
    @Excel(name = "提现ID")
    private String withdrawCode;

    /**
     * 提交时间
     */
    @Getter
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 用户昵称
     */
    @Excel(name = "用户昵称")
    private String userName;

    /**
     * 用户手机号
     */
    @Excel(name = "用户手机号")
    private String phone;

    /**
     * 银行卡户名
     */
    @Excel(name = "银行卡户名")
    private String bankUserName;

    /**
     * 银行名称
     */
    @Excel(name = "银行名称")
    private String bankName;

    /**
     * 支行名称
     */
    @Excel(name = "支行名称")
    private String bankBranch;

    /**
     * 银行卡号
     */
    @Excel(name = "银行卡号")
    private String bankCardNumber;

    /**
     * 审核状态(1.待审核，2.审核通过，3.审核驳回)
     */
    private Integer processStatus;

    /**
     * 审核状态名称(1.待审核，2.审核通过，3.审核驳回)
     */
    @Excel(name = "审核状态")
    @TableField(exist = false)
    private String processStatusName;
    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date processTime;

    /**
     * 驳回原因
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String rejectReason;
    /**
     * 打款状态(0.未打款，1.已打款)
     */
    private Integer paymentStatus;


    /**
     * 打款状态名称(0.未打款，1.已打款)
     */
    @Excel(name = "打款状态")
    @TableField(exist = false)
    private String paymentStatusName;


    /**
     * 打款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "打款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date paymentTime;

    /**
     * 提现金额
     */
    private BigDecimal withdrawalAmount;

    /**
     * 富友分账状态 05 分账成功 06 分账失败
     */
    private String fyStatus;

    /**
         * 富友结算状态 01 结算成功 02 结算失败 08 结算中 09 已结算,状态未知 07 银行退票
     */
    private String allocateStatus;

    /**
     * 附言
     */
    private String info;

    private String remark;

}
